/**
 * 
 */
package br.com.estrategos.modelo.localidade;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;

import org.hibernate.annotations.ForeignKey;

/**
 * @author x12259401
 *
 */
@MappedSuperclass
public abstract class Endereco {
	
	@Id
	@GeneratedValue
	@Column(name = "idendereco", unique = true, length = 10)
	private Long idEndereco;
	
	@Column(length=45)
	private String logradouro;
	
	@Column(length=20)
	private String numero;
	
	@Column(length=45)
	private String complemento;
	
	@Column(length=11)
	private String cep;
	
	private Date dtcadastro;
	
	@ManyToOne(targetEntity = CidadeEntity.class, fetch = FetchType.LAZY)
	@ForeignKey(name="fk_idcidade")
	@JoinColumn (name = "idcidade", nullable=false)
	private CidadeEntity cidade;
	


	public Long getIdEndereco() {
		return idEndereco;
	}

	public void setIdEndereco(Long idEndereco) {
		this.idEndereco = idEndereco;
	}

	public String getLogradouro() {
		return logradouro;
	}

	public void setLogradouro(String logradouro) {
		this.logradouro = logradouro;
	}

	public String getNumero() {
		return numero;
	}

	public void setNumero(String numero) {
		this.numero = numero;
	}

	public String getComplemento() {
		return complemento;
	}

	public void setComplemento(String complemento) {
		this.complemento = complemento;
	}

	public String getCep() {
		return cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	public Date getDtcadastro() {
		return dtcadastro;
	}

	public void setDtcadastro(Date dtcadastro) {
		this.dtcadastro = dtcadastro;
	}

	public CidadeEntity getCidade() {
		return cidade;
	}

	public void setCidade(CidadeEntity cidade) {
		this.cidade = cidade;
	}
}
